package chapter6.eg9;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.nio.ByteBuffer;

public class PerformTestUserInfo {

  public static void main(String[] args) throws IOException {
    UserInfo info = new UserInfo();
    info.buildUserId(100).buildUsername("Welcome to Netty");
    ByteArrayOutputStream bos = null;
    ObjectOutputStream os = null;
    long startTime = System.currentTimeMillis();
    for (int i = 0; i < 1000000; i++) {
      bos = new ByteArrayOutputStream();
      os = new ObjectOutputStream(bos);
      os.writeObject(info);
      os.flush();
      os.close();
      byte[] b = bos.toByteArray();
      bos.close();
    }

    long endTime = System.currentTimeMillis();
    System.out.println("The jdk serializable cost time is: " + (endTime - startTime) + " ms");
    System.out.println("------------------------------------------------------------");
    ByteBuffer buffer = ByteBuffer.allocate(1024);
    startTime = System.currentTimeMillis();
    for (int i = 0; i < 1000000; i++) {
      byte[] b = info.codeC(buffer);
    }

    endTime = System.currentTimeMillis();
    System.out.println("The byte array serializalbe cost time is: " + (endTime - startTime) + " ms");

  }

}
